package com.huawei.esdk.uc.jna;

public class Constants
{
    public static final int STRING_LENGTH = 100;// 所有对外字符串固定长度

    // 对外接口返回码
    public interface UCServiceRetvCode
    {
        int UC_SDK_Success = 0; // 成功

        int UC_SDK_InvalidPara = 1; // 不合法的参数

        int UC_SDK_Failed = 2; // 失败

        int UC_SDK_NotInit = 3; // 未初始化

        int UC_SDK_NullPtr = 4; // 空指针

        int UC_SDK_FindUriErr = 5; // 查找用户uri错误

        int UC_SDK_NotHaveCallTarget = 6; // 没有呼叫对象

        int UC_SDK_InTempGroupNow = 7; // 已经在TempGroup内

        int UC_SDK_NotFound = 8; // 没有找到

        int UC_SDK_NoRight = 9; // 没有权限

        int UC_SDK_NotLogin = 10; // 未成功登录
    };

    /**
     * 登录回调之后的返回码,实际上只有1和3这两种有意义.要结合返回码和resonCode来看具体登录结果
     * @author l00206777
     * 
     */
    public interface SignInState
    {
        int Client_Uninited = 0; // 未初始化

        int Client_SignedFailed = 1; // 登录失败

        int Client_SigningIn = 2; // 正在登录

        int Client_SignedIn = 3; // 登录成功

        int Client_KickedOut = 4; // 被踢出

        int Client_Invalid = 5;
    };

    public interface ReasonCode
    {
        String ERROR_PWD = "error pwd"; // 密码不正确

        String EMPTY_PWD = "empty pwd"; // 密码为空

        String NOIP = "noip"; // 掉线

        String ACC_NOT_EXISTED = "account not existed";// 账号不存在

        String ACC_LOCKED = "locked"; // 账号已锁定

        String ACC_ERROR = "account error"; // 账号错误

        String NEED_CHANGEPWD = "need change pwd"; // 需要更换密码

        String TIME_OUT = "timeout"; // 超时

        String NEED_NEW_VERSION = "need new version"; // 需要下载新版本才允许登录

        String NEED_ACTIVE = "need active"; // 用户未激活

        String NORMAL_ERROR = "normal error"; // 登陆一般失败

        String ACC_KICKED = "sipkickout"; // 用户被踢

        String LOGOUT_OK = "log out ok"; // 用户成功注销
    }

    // 成员类型

    public interface AccountType
    {
        int UC_ACCOUNT = 0; // UC账户

        int UC_IPPHONE = 1; // IPPHONE
    };

    // 话机联动类型
    public interface PhoneJointType
    {
        int PC_Device = 0; // PC作为通讯设备

        int IPPhone_Device = 1; // ip话机作为通讯设备
    };

    // 话机联动通知状态
    public interface PhoneJointStatusType
    {
        int STATUS_START_SUCC = 0; // 开启联动成功

        int STATUS_START_FAILED = 1; // 开启联动失败

        int STATUS_STOP_SUCC = 2; // 取消联动成功

        int STATUS_STOP_FAILED = 3; // 取消联动失败

        int STATUS_ONLINE = 4; // IPPhone在线

        int STATUS_OFFLINE = 5; // IPPhone离线

        int STATUS_OFFHOOK = 6; // IPPhone摘机
    };

    //
    public interface PortalType
    {
        int SelfMgr_Portal = 0; // 个人管理页面

        int BookConf_Portal = 1; // 预定会议页面
    };

    // Call状态
    public interface VideoCallStatus
    {
        int CALL_VIDEO_REQ = 0; // 视频呼叫请求

        int CALL_VIDEO_CONNECTED = 1; // 视频呼叫接通

        int CALL_VIDEO_CLOSE = 2; // 视频呼叫未接通或者关闭
    };

    // 联系人状态码
    public interface ContactAvailability
    {
        int Offline = 0;

        int Online = 1;

        int Hide = 2;

        int Busy = 3;

        int Leave = 4;

        int NoDisturb = 5;

        int InvalidStatus = 6;
    };

    // 单人呼叫历史数据
    public interface CallHistoryType
    {
        int HISTORY_CALL_MISSED = 0;// 未接电话

        int HISTORY_CALL_ANSWERED = 1; // 已接通话

        int HISTORY_CALL_DIALED = 2; // 已拨通话

        int HISTORY_CALL_ALL = 3; // 全部通话
    };

    // 主席操作权限
    public interface ConvnerOperateType
    {
        int EndCallMember = 0; // 结束某成员的通话

        int ReInviteMember = 1; // 重新呼叫某成员

        int MuteMember = 2; // 对某成员静音

        int UnMuteMember = 3; // 对某成员取消静音
    };

    // 会议中的成员状态
    public interface MemStatusInCall
    {
        int CONF_MEM_INVITING = 0; // 正在呼叫某成员

        int CONF_MEM_HANGUP = 1; // 某成员挂断

        int CONF_MEM_INCONF = 2; // 正在会议中

        int CONF_MEM_QUIT = 3; // 成员离开

        int CONF_MEM_MUTE = 4; // 成员被静音

        int CONF_MEM_UnMute = 5; // 成员被取消静音

        int CONF_MEM_SPK = 6; // 成员在说话

        int CONF_MEM_ADD = 7; // 新增成员

        int CONF_MEM_DEL = 8; // 成员被删除
    }

}
